package fun.ltool.core.excel.annotation;

import fun.ltool.core.excel.enums.DataTypeEnum;

import java.lang.annotation.*;

/**
 * Excel数据映射 实体注解
 * <p>标注在类上用于数据映射标记,配合该类使用 {@link fun.ltool.core.excel.ExcelDataMapping}</p>
 *
 * @author huangrongsong
 * @since 1.3
 */
@Documented
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface ExcelEntity {

    /**
     * 描述Excel数据格式 默认数据行模式
     *
     * @return 返回对应枚举类型
     */
    DataTypeEnum dataType() default DataTypeEnum.DATA_ROW_MODE;

    /**
     * Excel 读取行数
     * <p>一般用于数据表模式 {@link DataTypeEnum#DATA_TABLE_MODE},数据行模式{@link DataTypeEnum#DATA_ROW_MODE}因为数据量不是固定 <br>例子：</p>
     * 从第2行开始读 不限制有多少行 {@code {1,0}} 或者 {@code {1}}
     *
     * @return 返回对应行数数组
     */
    int[] rowRange() default {0, 0};

    /**
     * Excel 读取列数
     * <p>例子：</p>
     * 从第1列开始读 读取10列 {@code {0,9}}
     *
     * @return 返回对应列数数组
     */
    int[] columnRange() default {0, 0};
}
